The DiagramSurface Control
The DiagramSurface control is the core control for WPF Diagrams. To display a diagram in your application, create a DiagramSurface control and set its DiagramSurface.Diagram property.
DiagramSurface has a number of properties which you can use to configure the behaviour and appearance of the diagram. The following list summarises key properties:
Visual style properties | |
---|---|
MarqueeStyle | The style for selection rectangles (when the user drags over an area to select). |
SnapLineDrawing | Controls the drawing of snap lines on the background. See Background. |
DefaultCreateConnectionLineStyle | Used when the user is creating a connection, and no specific style is provided for the tool being used |
Formatter | Controls diagram visual style in the low-level API. See Formatting. |
Scrolling properties | |
IsSmartScrollingEnabled | Scrolls the viewport as the user moves items. |
OverflowBehavior | Controls whether the user is allowed to scroll when the diagram already fits within the control. |
Editing properties | |
IsReadOnly | Prevents the user making changes to the diagram. |
ShowConnectionPoints | Controls whether connection points are displayed. |
SelectionMode | Controls whether the surface allows single or multiple selection. |
Zoom properties | |
Zoom | The current zoom level. |
ZoomMode | Controls how the user can change the zoom level. |
Snapping properties | |
HorizontalSnapSpecifier | Controls horizontal snapping behaviour. See Snapping. |
VerticalSnapSpecifier | Controls vertical snapping behaviour. See Snapping. |
Collision control properties | |
AllowNodeCollisions | Controls whether nodes can overlap. |
AllowSegmentToNodeCollisions | Controls whether nodes and connections can overlap. |
CollisionBuffer | Controls the minimum distance between nodes and connections. |
DiagramSurface also exposes several properties and methods which are not related to appearance or behaviour but may be important when using the control in a broader application context:
Contained UI elements | |
---|---|
DiagramElements | The UI elements representing the contents of the diagram. |
NodeElements | The UI elements for the diagram nodes. |
ConnectionElements | The UI elements for the diagram connections. |
ScrollViewer | The scroll viewer used for scrolling the diagram viewport. |
Selection properties | |
SelectedItem | The currently selected diagram model item. |
SelectedItems | The collection of currently selected diagram model items. |
SelectedElement | The currently selected diagram element (UI element). |
SelectedElements | The collection of currently selected diagram elements (UI elements). |
Diagram status | |
IsDirty | Whether the diagram displayed on the surface has been changed. |